import logging
import os

from llama_index.core.extractors import TitleExtractor
from llama_index.core.schema import TextNode
from llama_index.llms.dashscope import DashScope

logging.basicConfig(level=logging.DEBUG)
text1 = '【摸鱼式上班指南】上班的好处？那可太多了！工资虽如蜗牛爬坡，但至少每月准时到账；同事虽像动物园巡演，但免费相声随时开演；更妙的是，办公室空调永远26度，比家里抠搜的电费划算多了！最绝的是，摸鱼时还能理直气壮说“我在工作”，毕竟带薪发呆的日子，可比在家当“全职儿女”体面多了！您说是不是这个理儿？'
text2 = '<夜行者说>深夜里，屏幕的蓝光映着苍白的脸，指节在键盘上敲出急雨般的声响。他们自嘲为"码农"，在数据的田野里耕耘，收获的却是屏幕上的报错红字。茶凉了又续，咖啡渍在桌上绘成蜿蜒的河，泡面桶堆成巴别塔的残基。当晨光爬上窗帘，才惊觉又熬过一轮代码的轮回——这便是现代人的生存，在二进制与血肉之间，敲打出时代的荒诞。'
node1 = TextNode(text=text1, doc_id=1024)
node2 = TextNode(text=text2, doc_id=1025)

print('初始化模型对象')
llm = DashScope(
    model="qwen-turbo",  # 使用通义千问Max模型 qwen-max
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 从阿里云控制台获取
    temperature=0.3
)
print('利用LLM的能力从文本中生成相关的元数据。之后，这些提取的元数据可以附加到文档和节点上，以提供额外的上下文信息')
title_extractor = TitleExtractor(llm=llm)
metadata_list = title_extractor.extract([node1, node2])
print(metadata_list)
